// pages/goods_list/goods_list.js

/**
 * 1，用户上滑页面 滚动条触底 开始加载下一页数据
 *      1，找到滚动条触底事件 微信小程序官方开发文档
 *      2，判断还有没有下一页数据
 *      3，假如没有下一页数据 弹出一个提示
 *      4，假如有下一页数据 来加载下一页数据
 */

import { request } from '../../request/index.js'

Page({
  /**
   * 页面的初始数据
   */
  data: {
    tabs: [
      {
        id: 0,
        value: '综合',
        isActive: true,
      },
      {
        id: 1,
        value: '销量',
        isActive: false,
      },
      {
        id: 2,
        value: '价格',
        isActive: false,
      },
    ],
    testName:
      '电视机是指根据人眼的视觉暂留特性和视觉心理，利用电子技术传送活动的图像画面和音频信号的设备，即电视接收机。也是重要的广播和视频通信工具。电视机的基本系统由摄像、传',
    testPrice: '$1212.45',

    // 查询参数
    queryParams: {
      query: '',
      cid: '',
      pagenum: 1,
      pagesize: 10,
    },
    // 总页数
    totalPage: 1,

    // 商品列表数组
    goodsList: [],
    // 总条数
    goodsTotal: 0,
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    // console.log(options)
    // { cid: "5" }
    const { queryParams } = this.data
    queryParams.cid = options.cid || ''
    queryParams.query = options.query || ''
    this.setData({
      queryParams: queryParams,
    })

    this.getGoodsList()
  },

  // 下拉刷新
  onReachBottom() {
    // 判断当前页是否是最后一页
    const currPageNum = this.data.queryParams.pagenum
    const totalPageNum = Math.ceil(
      this.data.goodsTotal / this.data.queryParams.pagesize
    )
    if (currPageNum >= totalPageNum) {
      wx.showToast({
        title: '翻完了',
      })
    } else {
      console.log('haiyou')
      const { queryParams } = this.data
      queryParams.pagenum += 1

      this.setData({
        queryParams: queryParams,
      })
      this.getGoodsList()
    }
  },
  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
    // console.log('xiala');
    const { queryParams } = this.data
    queryParams.pagenum = 1
    this.setData({
      queryParams: queryParams,
    })
    this.setData({
      queryParams: queryParams,
      goodsList: [],
    })

    this.getGoodsList()
  },

  // 获取商品列表数据
  async getGoodsList() {
    const { data } = await request({
      url: '/goods/search',
      data: this.data.queryParams,
    })
    // console.log(data);
    this.setData({
      // 拼接数组
      goodsList: [...this.data.goodsList, ...data.message.goods],
      goodsTotal: data.message.total,
    })
    // 数据回来后，手动关闭下拉刷新效果
    wx.stopPullDownRefresh()
  },

  // tabs组件的点击函数
  handleTabsItemChange(e) {
    // console.log(e);
    // 1，获取子组件传过来的index值
    const { index } = e.detail
    // 2，修改原tabs数组
    let { tabs } = this.data
    tabs.forEach((v, i) => {
      if (i === index) {
        v.isActive = true
      } else {
        v.isActive = false
      }
    })

    this.setData({
      tabs: tabs,
    })
  },
})
